/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.eventos.be;

import java.io.Serializable;
//import java.math.BigDecimal;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.cip.esymons.general.be.ConsejoDepartamental;

/**
 *
 * @author lizardo
 */
@Entity
@Table(name = "eca_calificacion_modulo")
@NamedQueries({@NamedQuery(name = "CalificacionModulo.findAll", query = "SELECT c FROM CalificacionModulo c"), @NamedQuery(name = "CalificacionModulo.findByCalCodigo", query = "SELECT c FROM CalificacionModulo c WHERE c.calCodigo = :calCodigo"), @NamedQuery(name = "CalificacionModulo.findByCalPromedio", query = "SELECT c FROM CalificacionModulo c WHERE c.calPromedio = :calPromedio"), @NamedQuery(name = "CalificacionModulo.findByCalEstado", query = "SELECT c FROM CalificacionModulo c WHERE c.calEstado = :calEstado"), @NamedQuery(name = "CalificacionModulo.findByNota1", query = "SELECT c FROM CalificacionModulo c WHERE c.nota1 = :nota1"), @NamedQuery(name = "CalificacionModulo.findByNota2", query = "SELECT c FROM CalificacionModulo c WHERE c.nota2 = :nota2"), @NamedQuery(name = "CalificacionModulo.findByNota3", query = "SELECT c FROM CalificacionModulo c WHERE c.nota3 = :nota3")})
public class CalificacionModulo implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "cal_codigo")
    private Long calCodigo;
    @Basic(optional = false)
    @Column(name = "cal_promedio")
    private Double calPromedio;
    @Basic(optional = false)
    @Column(name = "cal_estado")
    private boolean calEstado;
    @Basic(optional = false)
    @Column(name = "nota1")
    private Double nota1;
    @Basic(optional = false)
    @Column(name = "nota2")
    private Double nota2;
    @Basic(optional = false)
    @Column(name = "nota3")
    private Double nota3;
    @Basic(optional = false)
    @Column(name = "cal_nro_notas")
    private Integer calNroNotas;
    @Basic(optional = false)
    @Column(name = "cal_veces")
    private Integer calVeces;
    @JoinColumn(name = "mod_codigo", referencedColumnName = "mod_codigo")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private ModuloCurso modCodigo;
    @JoinColumn(name = "mat_codigo", referencedColumnName = "mat_codigo")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Matricula matCodigo;

    @Transient
    private ConsejoDepartamental consejo;

    @Transient
    private Boolean seleccion;

    public CalificacionModulo() {
    }

    public CalificacionModulo(Long calCodigo) {
        this.calCodigo = calCodigo;
    }

    public CalificacionModulo(Long calCodigo, Double calPromedio, boolean calEstado, Double nota1, Double nota2, Double nota3) {
        this.calCodigo = calCodigo;
        this.calPromedio = calPromedio;
        this.calEstado = calEstado;
        this.nota1 = nota1;
        this.nota2 = nota2;
        this.nota3 = nota3;
    }

    public void setConsejo(ConsejoDepartamental consejo) {
        this.consejo = consejo;
    }
    public ConsejoDepartamental getConsejo() {
        return consejo;
    }

    public Long getCalCodigo() {
        return calCodigo;
    }
    public void setCalCodigo(Long calCodigo) {
        this.calCodigo = calCodigo;
    }

    public Double getCalPromedio() {
        return calPromedio;
    }
    public void setCalPromedio(Double calPromedio) {
        this.calPromedio = calPromedio;
    }

    public boolean getCalEstado() {
        return calEstado;
    }
    public void setCalEstado(boolean calEstado) {
        this.calEstado = calEstado;
    }

    public Double getNota1() {
        return nota1;
    }
    public void setNota1(Double nota1) {
        this.nota1 = nota1;
    }

    public Double getNota2() {
        return nota2;
    }
    public void setNota2(Double nota2) {
        this.nota2 = nota2;
    }

    public Double getNota3() {
        return nota3;
    }
    public void setNota3(Double nota3) {
        this.nota3 = nota3;
    }

    public Integer getCalVeces() {
        return calVeces;
    }

    public void setCalVeces(Integer calVeces) {
        this.calVeces = calVeces;
    }

    

    public ModuloCurso getModCodigo() {
        return modCodigo;
    }
    public void setModCodigo(ModuloCurso modCodigo) {
        this.modCodigo = modCodigo;
    }

    public Matricula getMatCodigo() {
        return matCodigo;
    }
    public void setMatCodigo(Matricula matCodigo) {
        this.matCodigo = matCodigo;
    }

    public Integer getCalNroNotas() {
        return calNroNotas;
    }
    public void setCalNroNotas(Integer calNroNotas) {
        this.calNroNotas = calNroNotas;
    }

    public Boolean getSeleccion() {
        return seleccion;
    }

    public void setSeleccion(Boolean seleccion) {
        this.seleccion = seleccion;
    }

    

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (calCodigo != null ? calCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CalificacionModulo)) {
            return false;
        }
        CalificacionModulo other = (CalificacionModulo) object;
        if ((this.calCodigo == null && other.calCodigo != null) || (this.calCodigo != null && !this.calCodigo.equals(other.calCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.cip.esymons.eventos.be.CalificacionModulo[calCodigo=" + calCodigo + "]";
    }


}
